<?php
/**
 * FederalDistrict
 *
 * Класс FederalDistrict обрабатывает данные, связанные с федеральными округами
 *
 */
class FederalDistrict extends ActiveRecord {
	public $tableName = 'federal_district';
	public $pkName = 'ID_federal_district';

	protected $citiesOnPage = 20;							// Количество городов, отображаемых на странице федерального округа  
	protected $arrSettings = array('created_at' => true);
	
	/**
	 * Функция получает массив городов для отображения на странице федерального округа
	 * Сначала берутся города с высоким importance_level, если их окажется мало берутся дополнительные города по city_type
	 * 
	 * @param int $cityId - Id города, если поиск ведётся от имени города. Для того, чтобы на странице города не было ссылки на самого себя
	 * @param int $limit - Количество необходимых городов
	 */
	public function getMainCities($limit = null) {
		Service_Debug::setDebug();
		$objDB = Service_Database::instance();
		if(!$limit) $limit = $this->citiesOnPage;
		$stmt = "SELECT `city`.`city_name`,`city`.`city_url`,`city`.`city_type`,`city`.`importance_level`
				FROM `city`
				WHERE `city`.`ID_federal_district` ='" . $this->id  . "' AND `city`.`importance_level` >='" . City::$minImortanceToView . "' ORDER BY `city`.`importance_level` DESC, `city`.`city_type` DESC LIMIT " . $limit;
		return $objDB->select($stmt);
	}
	
	/**
	 * Функция получает массив всех городов федерального округа
	 */
	public function getAllCities() {
		Service_Debug::setDebug();
		$objDB = Service_Database::instance();
		$stmt = "SELECT `city`.`city_name`,`city`.`city_url`,`city`.`city_type`
				FROM `city`
				WHERE `city`.`ID_federal_district` ='" . $this->id  . "' AND `city`.`importance_level` >='" . City::$minImortanceToView . "' ORDER BY 1";
		
		return $objDB->select($stmt);
	}
}
?>